<?php

/**
 * Image class for WO CMS version 1.0 ;-)
 * vars :
 * jcrop [crop|auto]
 * folder
 * idelem
 * prefix
 * postfix
 * namefile
 * namefile_trumb
 * processor
 * resize
 */
class ImgCrop
{
	private $FileCheck;
	private $FileCheck_trumb;
	
	static private function Jcrop($trumb, $original, $id, $prefix, $w, $h, $w_m, $h_m, $name) 
	{
		return '<!-- jcrop '.$prefix.'_'.$id.' -->'.
				'<p><strong>'.$name.'</strong></p>'.						       
				'<div id="trumbnail'.$w.$id.'_'.$prefix.'resp_uploads'.$id.'" class="crop_box image_before_crop_image_'.$prefix.$w.$id.'"><img class="cropbox cropimage_'.$prefix.$w.$id.'" src="/'.$original.'" tsrc="/'.$trumb.'" /></div>'.
				'<div class="rotate_box">
				  <a href="javascript:void(0);" title="Повернуть изображение вправо" class="rotate right" rel="right">Повернуть изображение вправо</a>
				  <a href="javascript:void(0);" title="Повернуть изображение влево" class="rotate left" rel="left">Повернуть изображение влево</a>
				</div>'.
				'<div class="jc_coords">'.
				  '<input type="hidden" id="x_'.$prefix.$id.'" name="x_'.$prefix.$id.'" />'.
				  '<input type="hidden" id="y_'.$prefix.$id.'" name="y_'.$prefix.$id.'" />'.
				  '<input type="hidden" id="w_'.$prefix.$id.'" name="w_'.$prefix.$id.'" />'.
				  '<input type="hidden" id="h_'.$prefix.$id.'" name="h_'.$prefix.$id.'" />'.
				  '<a class="wo_crop_button butt_rad_grad_grey" id="'.$id.'" ww="'.$w.'" hh="'.$h.'" ww_m="'.$w_m.'" hh_m="'.$h_m.'" prefixx="'.$prefix.'">Выбрать область</a>'.
				  '<div class="crop_message">Для того, чтобы сделать уменьшенную копию нужно: выбрать нужную область изображения и нажать кнопку "Обрезать изображение"</div>'.
				  '<div class="clear"></div>'.		
				'</div>'.
			   '<!-- jcrop '.$prefix.'_'.$id.' end -->'."\n\n";
	}	
	
	static public function createUploadCode($conf)
	{		
		for($i=1;$i<=$conf['limit'];$i++)
		{
			/* Original */
			$FileCheck = 'uploads/'.$conf['folder'].'/'.md5($conf['idelem'].'_'.$i.'_').$conf['namefile'];
			if(file_exists(str_replace('//', '/', ROOT_DIR.DIRSEP.$FileCheck)))	
			{		
				/* Trumb */	
				if(is_array($conf['previews']) && !empty($conf['previews'])) {
					foreach($conf['previews'] as $key => $arrayAttr) {					
						$FileCheck_trumb = 'uploads/'.$conf['folder'].'/'.md5($conf['idelem'].'_'.$i.'_').$arrayAttr["namefile"];
						if(file_exists(str_replace('//', '/', ROOT_DIR.DIRSEP.$FileCheck_trumb))) {
							$rand = $arrayAttr["width"].$i;					
							$ImgFileCheck_trumb.= '<p id="trumbnail'.$rand.'_'.$conf['prefix'].'resp_uploads'.$i.'">'.
												  '<strong>'.$arrayAttr["textfile"].'</strong><br /><br />'.
												  '<img src="/'.$FileCheck_trumb.'" /> &nbsp; '.
													 '<a title="Удалить превью" href="javascript:void(0);" prefixx="'.$conf['prefix'].'" class="delPhoto" picture="trumbnail'.$rand.'" rel="'.$FileCheck_trumb.'" num="'.$i.'"><img src="/templates/admin/img/cancel.png" border="0" /></a>'.
												  '</p>';
						}
						else {
							list($w_m, $h_m) = getimagesize(ROOT_DIR.DIRSEP.$FileCheck);
							$ImgFileCheck_trumb.= self::Jcrop($FileCheck_trumb, $FileCheck, $i, $arrayAttr['prefix'], $arrayAttr["width"], $arrayAttr["height"], $w_m, $h_m, $arrayAttr["textfile"]);
						}					
					}
				}
				
				$LoadedPicture.= $ImgFileCheck_trumb.'<p id="original_'.$conf['prefix'].'resp_uploads'.$i.'"><strong>Оригинал</strong><br /><br /><a href="/'.$FileCheck.'" target="_blank" rel="gal"><strong>[# '.$i.'] открыть исходное изображение</strong></a> &nbsp;'. 
								   '<a title="Удалить исходное изображение" href="javascript:void(0);" class="delPhoto" prefixx="'.$conf['prefix'].'" rel="'.$FileCheck.'" picture="original" num="'.$i.'"><img src="/templates/admin/img/cancel.png" border="0" /></a>'.
								'</p>
								<hr />';
								  	
				unset($ImgFileCheck, $ImgFileCheck_trumb);		
			}
		}		
		
		$ScriptCreate =	'<script src="/min/index.php?f=/templates/admin/js/uploadify/jquery.uploadify.v2.1.4.min.js,/templates/admin/js/uploadify/swfobject.js" type="text/javascript"></script>
		<div class="image_box">
		   <h1>'.$conf['text'].'</h1>
		   '.$LoadedPicture.'
		   <p id="'.$conf['prefix'].'ajax_uploads'.$conf['idelem'].'"></p>
		   <input id="'.$conf['prefix'].'fileInput'.$conf['idelem'].'" name="'.$conf['prefix'].'fileInput'.$conf['idelem'].'" type="file" />
		 </div>
		 <script type="text/javascript">						 
		 $(function()
		 {							 
			 /* Загрузчик */
			 $("#'.$conf['prefix'].'fileInput'.$conf['idelem'].'").uploadify({
				 "uploader":"/templates/admin/js/uploadify/uploadify.swf",
				 "script":"'.$conf['processor'].'",
				 "cancelImg":"/templates/admin/img/cancel.png",								
				 "scriptData" : {
					 "id"             : "'.$conf['idelem'].'",
					 "namefile"       : "'.$conf['namefile'].'",
					 "namefile_trumb" : "'.$conf['namefile_trumb'].'",
					 "width"          : "'.$conf['width'].'",
					 "height"         : "'.$conf['height'].'",
					 "limit"          : "'.$conf['limit'].'"
				},
				"folder"     : "/uploads/'.$conf['folder'].'",
				"multi"      : true,
				"auto"       : true,
				"queueSizeLimit" : '.$conf['limit'].',
				"simUploadLimit" : 1,
				"fileDesc"   : "*.jpg, *.png, *.gif",
				"fileExt"    : "*.jpg;*.jpeg;*.png;*.gif;",
				"onComplete" : function(event, queueID, fileObj, response, data) {
					$("#'.$conf['prefix'].'ajax_uploads'.$conf['idelem'].'").html(response);
				},				
				"onOpen" : function(event,ID,fileObj) {
					$("#'.$conf['prefix'].'ajax_uploads'.$conf['idelem'].'").html("Загружаю <strong>"+fileObj.name+"</strong>! Подождите немного!");
				},
				"onProgress" : function(event, ID, fileObj, data) {
					var bytes = Math.round(data.bytesLoaded / 1024);
					$("#"+$(event.target).attr("id")+ID).find(".percentage").text(" - " + bytes + "KB Загружено");
					return false;
				},
				"onQueueFull" : function (event, queueSizeLimit) {
					alert("Возможное количество загружаемых файлов: "+queueSizeLimit+"!");
					return false;
				},
				"onError"     : function (event,ID,fileObj,errorObj) {
					$("#unloading_ajax").html(errorObj.type + " Error: " + errorObj.info);
					return false;
				}
			});
		});
		</script>';
						
		return $ScriptCreate;
	}
} 

?>